package com.ys.object;

/**
 * @author CodeYang
 * @Description
 * 基础学生类 抽象
 * @Date 2020/12/12 10:59
 */
public class Students {

    String name;
    int age;
    String sex;
    String food;




    public Students(String food) {

        this.food = food;
    }
    public Students(String food,String food2) {

        Students.this.food = food;
    }

   public Students(){
        System.out.println("sss");
    }

    void printf() {

        System.out.println("学生姓名:" + name + "\t年龄" + age + "\t性别:" + sex);
    }
    //this的本质就是“创建好的对象的地址”! 由于在构造方法调用前，对象已经创建。因此，在构造方法中也可以使用this代表“当前对象” 。
    //　　this最常的用法：
    //　　1.  在程序中产生二义性之处，应使用this来指明当前对象;普通方法中，this总是指向调用该方法的对象。构造方法中，this总是指向正要初始化的对象。
    //　　2. 使用this关键字调用重载的构造方法，避免相同的初始化代码。但只能在构造方法中用，并且必须位于构造方法的第一句
    //　　3. this不能用于static方法中。
    // -----编译后 就是 this.food = string;
    //  this 就是为了 避免 方法内 出现相同名字的变量,操作,指向不清

    void eat(String string){
        // 直接操作, 在成员方法中 可以直接操作 成员变量
        // this是一个缺省的对象 ---> 句柄, 指向谁调用

        food = string;
        // 句柄指向赋值
        this.food = string;
        System.out.println(name+"吃:"+food);
    }
}
